﻿using System;
using System.Windows.Controls;
using System.Windows.Input;

namespace CloudTaobao.CustomControl
{
    public class NumericTextBox : TextBox
    {
        //返回键和数字键
        private readonly Key[] numeric = new Key[] {Key.Back, Key.NumPad0, Key.NumPad1, Key.NumPad2, Key.NumPad3, Key.NumPad4,
                                    Key.NumPad5, Key.NumPad6, Key.NumPad7, Key.NumPad8, Key.NumPad9 };

        public NumericTextBox()
        {
            //将文本设置为  电话号码的文本输入模式
            this.InputScope = new InputScope();
            this.InputScope.Names.Add(new InputScopeName() { NameValue = InputScopeNameValue.TelephoneNumber });
        }

        protected override void OnKeyDown(KeyEventArgs e)
        {  //如果是数字键或者返回键则设置e.Handled = true; 表示事件已经处理
            if (Array.IndexOf(numeric, e.Key) == -1)
            {
                e.Handled = true;
            }
            base.OnKeyDown(e); // important, if not called the back button is not handled
        }
    }

}